昨天已經將TableView給建立完畢了,今天來跟大家聊聊TableViewCell的建立方法,
首先介紹一下TableViewCell,TableViewCell就是TableView上面的欄位,
一個欄位就等於一個Cell。
實作TableViewCell前,必須先觀察Cell中有哪些元件,才知道要時做出哪些元件出來。
觀察結果如下:
會發現共有兩種不同的Cell:
因此會需要實作兩個TableViewCell,馬上來實作吧。
這邊會先建立包含兩個UILabel的TableViewCell,
那要如何建立TableViewCell呢?跟著以下做看看吧~
Step. 1
Step. 2
Step. 3 (將這個TableViewCell命名為:「addAlarmContentTableCell」)
Step. 4 完成
建立完成後內容應該會如下:
class addAlarmContentTableViewCell: UITableViewCell {
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        // Configure the view for the selected state
    }
}
但由於我們是用Code建立的,因此必須要先將裡面的 awakeFormNib() & setSelected() 刪除,
並該改為以下:
class addAlarmContentTableViewCell: UITableViewCell {
    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
接著就來實作TableViewCell的內容吧!
首先建立兩個UILabel,一個命名為:titleLabel,另一個為:contentLabel
let titleLabel: UILabel = {
        let label = UILabel()
        label.textColor = .white
        return label
    }()
    let contentLabel: UILabel = {
        let label = UILabel()
        return label
    }()
一樣要記得加進 TableViewCell 裡面
func setViews() {
        self.addSubview(titleLabel)
        self.addSubview(contentLabel)
    }
然後做Layout
func setLayouts() {
        titleLabel.snp.makeConstraints { make in
            // titleLabel 的頂部跟底部貼齊TableViewCell的頂部跟底部
            make.top.bottom.equalTo(self)
            // titleLabel 的左邊距離TableViewCell的左邊間隔10
            make.leading.equalTo(self).offset(10)
        }
        contentLabel.snp.makeConstraints { make in
            // contentLabel 的頂部、底部都貼齊TableViewCell
            make.top.bottom.equalTo(self)
            // contentLabel 的右邊距離TableViewCell的右邊間隔50
            // 為了不跟TableView Accessory重疊
            make.trailing.equalTo(self).offset(-50)
        }
    }
設定完後記得將SetViews() & setLayouts() 加入init()內,然後執行看看吧!
你的畫面應該會長下面這樣:
 怎麼畫面沒變!明明都設定好了呀?
怎麼畫面沒變!明明都設定好了呀?
那是因為我們只是將TableViewCell建立出來而已,並沒有告知TableView要使用哪個TableViewCell,
那讓子彈飛一會兒,明天再來討論該如何讓TableView知道要用哪個TableViewCell吧!